/**
 * 将 file 目录中的 1.js 2.js 3.js 文件内容读出并统一输出
 */
const fs = require('fs');

// let str = '';
// fs.readFile('./file/1.js', (err1,data1)=>{
//     if(err1){
//         throw err1
//     }
//     // console.log(data1.toString());
//     str += data1.toString();
//     fs.readFile('./file/2.js', (err2, data2)=>{
//         if(err2){
//             throw err2
//         }
//         // console.log(data2.toString());
//         str += data2.toString();
//         fs.readFile('./file/3.js', (err3, data3)=>{
//             if(err3){
//                 throw err3
//             }
//             // console.log(data3.toString());
//             str += data3.toString();
//             console.log(str);
//         })

//     })
// })

/**
 * Promise 将回调函数地狱变成了 then
 * async await
 * 
 */

new Promise((resolve, reject) => {
    fs.readFile('./file/1.js', (err, data) => {
        if (err) {
            reject(err);
        }
        resolve(data.toString());
    })
}).then(value => {
    return new Promise((resolve, reject) => {
        fs.readFile('./file/2.js', (err, data) => {
            if (err) {
                reject(err);
            }
            console.log([value, data.toString()]);
            resolve([value, data.toString()]);
        })
    })
})
    .then(value => {
        return new Promise((resolve, reject) => {
            fs.readFile('./file/3.js', (err, data) => {
                if (err) {
                    reject(err);
                }
                value.push(data.toString());
                console.log(value);
                resolve(value);
            })
        })
    })
    .then(value => {
        let str = value.join('');
        console.log(str);
    })
    .catch(err => {
        console.log('err: ', err);
    })


